package cn.wilson.helloworld;

import cn.wilson.ConnectionUtil;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;

/**
 *      消息发送者  生产者
 */
public class Send {
    //指定队列的名字
    public static final String QUEUE_NAME_HELLOWORLD = "queue_name_helloworld";

    public static void main(String[] args) {

        try (
                //自动关流  jdk新特性
            //使用工具创建连接
            Connection connection = ConnectionUtil.getConnection();
            //使用连接对象，创建通道
            Channel channel = connection.createChannel();
        ){
            //声明队列  没有默认的
            channel.queueDeclare(
                QUEUE_NAME_HELLOWORLD,      //队列的名字
                true,       //队列持久化，当你关掉进程，再重启，这个队列还在
                false,      //一个队列就占一个连接  不要
                false,      //自动删除  这个队列用完就删了
                null        //队列的其他属性
            );

            //准备消息内容
            String msg = "用于测试helloworld的消息";

            //使用默认的交换机发送消息
            channel.basicPublish(
                    "",     //使用默认的交换机
                    QUEUE_NAME_HELLOWORLD,      //routingkey，可以看成队列的别名，就是你要发给哪个队列
                    null,       //不带额外的参数
                    msg.getBytes()      //消息的内容，但是他要的是字节数组
            );

            System.out.println("我发了：" + msg);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


}
